package com.cheifsteam.springframework.aop;

import org.aopalliance.aop.Advice;


/**
 * 顾问(Advisor)接口，定义AOP中的基本顾问概念
 *
 * @author qrx
 * @date 2025/8/6
 * @description: AOP顾问接口，用于获取增强 advice（通知/建议）
 */
public interface Advisor {

    /**
     * 获取与此顾问关联的增强 advice
     *
     * @return 返回关联的增强 advice 对象
     *
     * Advice 是 AOP 中的核心概念，表示在连接点(JoinPoint)执行的动作，
     * 典型的实现包括：
     * - MethodBeforeAdvice (前置通知)
     * - AfterReturningAdvice (返回后通知)
     * - ThrowsAdvice (异常通知)
     * - AroundAdvice (环绕通知)
     *
     * 实现类应该确保返回的 Advice 对象不为 null
     */
    Advice getAdvice();
}